// cloudfunctions/manageusers/index.js
const cloud = require('wx-server-sdk');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
const db = cloud.database();

// --- *** 新增：管理员 OPENID *** ---
const ADMIN_OPENID = '41b03074e1bb154e164f0a56873bf6d0';

/**
 * 入口函数
 * @param {object} event - 包含 action (操作类型), userId (用户ID), data (操作数据)
 */
exports.main = async (event, context) => {
  const { action, userId, data } = event;

  // --- *** 新增：权限校验 *** ---
  const wxContext = cloud.getWXContext();
  const openid = wxContext.OPENID;

  if (openid !== ADMIN_OPENID) {
    return {
      success: false,
      message: '无权操作'
    };
  }
  // --- *** 权限校验结束 *** ---

  try {
    switch (action) {
      // 获取用户列表
      case 'getList':
        // (您之前的逻辑是按 registerTime 排序，但 users 集合似乎没有这个字段，我改为按 updatedAt 排序)
        // (如果您的 users 集合确实有 registerTime，请将 'updatedAt' 改回 'registerTime')
        const res = await db.collection('users').orderBy('updatedAt', 'desc').get();
        return {
            success: true,
            data: res.data
        };
      
      // 切换用户封禁状态
      case 'toggleBan':
        if (!userId || data.isBanned === undefined) {
          return { success: false, message: '缺少必要参数' };
        }
        return await db.collection('users').doc(userId).update({
          data: {
            isBanned: data.isBanned // 传入新的状态
          }
        });

      default:
        return {
          success: false,
          message: '未知的操作类型'
        }
    }
  } catch (e) {
    console.error('操作用户失败', e);
    return {
      success: false,
      error: e
    }
  }
};